package br.edu.unoesc.minibi.service.impl;

import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;

import br.edu.unoesc.minibi.VO.ItemVendaProdutoVO;
import br.edu.unoesc.minibi.model.Produto;
import br.edu.unoesc.minibi.service.ProdutoServiceInterface;

@ApplicationScoped
@ManagedBean(name = "produtoService")
public class ProdutoServiceImpl extends ServiceBaseImpl<Produto> implements ProdutoServiceInterface {

	@Override
	public List<ItemVendaProdutoVO> getRelatorioVendaMesAno(Produto produto, Integer ano) {
		List<ItemVendaProdutoVO> lista = new ArrayList<ItemVendaProdutoVO>();

		String sql1 = "select sum(i.quantidade) " + "from ItemVenda i where MONTH(i.data)=";
		String sql2 = " and YEAR(i.data) =:ano and i.produto=:produto";

		for (int i = 1; i <= 12; i++) {
			Double somaD = getEntityManager().createQuery(sql1 + i + sql2, Double.class).setParameter("ano", ano).setParameter("produto", produto)
					.getSingleResult();

			Float soma;
			if (somaD == null) {
				soma = 0f;
			} else {
				soma = new Float(somaD);
			}

			ItemVendaProdutoVO it = new ItemVendaProdutoVO(soma, produto.getNome(), ano, i);
			lista.add(it);
		}
		return lista;
	}
}
